1. Field of the Invention
Certain embodiments of the present invention are directed generally to methods for aging datagrams that are stored in datagram distribution devices. Certain other embodiments of the present invention are directed generally to datagram distribution devices that are capable of performing and monitoring datagram aging.
2. Description of the Related Art
In today's telecommunications networks, data packets are often stored in memory units of network devices such as, but not limited to, nodes, modules, routers, and switches of a network. However, it is inefficient and generally undesirable for packets to be stored for extended periods of time in the memories of network devices. Hence, the related art has developed various methods for keeping track of how long packets stay in these memories and for discarding packets that remain in network device memories for periods of time that are deemed to be excessive.
FIG. 1 illustrates how packet 100 may be stored in Common Buffer Pool 110, which is part of a networked device according to the related art. As shown in FIG. 1, Common Buffer Pool (CBP) 110 includes a plurality of regions or cells, each having an address, wherein packet 100 may be stored.
Before entering CBP 110, the related art networked device that includes CBP 110 time-stamps packet 100. This time-stamping typically records when packet 100 entered into the device. In some instances, this time-stamping sets an AGING COUNT portion of packet 100 to a “0” value, which then gets incremented upward over time, as will be discussed below.
According to the related art, when aging packet 100 shown in FIG. 1, packet 100 is first received in the networked device. Then, the received packet 100 is time-stamped, usually based on when it was received by or entered into the device that includes CBP 110.
Once stored in CBP 110, packet 100 is aged, usually along with other packets in CBP 110. Typically, aging involves the AGING COUNT value of each packet in CBP 110 being incremented upwards by a value of “1”. Usually, the aging of all packets in CBP 110 is triggered by an aging pulse that affects packets in CBP 110 at a regular time interval.
If a packet in CBP 110 is selected to be forwarded from an egress of the device that includes CBP 110, a decision is first made concerning whether the selected packet is to be sent from a port of the device. This decision is based on how much the selected packet has been aged.
For example, if packet 100 had been in CBP 110 long enough for the AGING COUNT portion thereof to have increased to a value of “6”, and if the maximum allowed AGING COUNT value is “7”, then packet 100 will be forwarded out of the device. However, if the AGING COUNT portion of packet 100 had been aged such that its value is “7”, then packet 110 will not be forwarded from the device.
The above-discussed related art method of aging packets in the CBP of a networked device has several disadvantages. One of these disadvantages is related to the fact that the CBP of networked devices is relatively large, at least in the sense that the CBP includes many cells in which packets may be stored. Hence, updating/incrementing the AGING COUNT values of all packets in the CBP of a typical networked device according to the related art pursuant to the receipt of an aging pulse is an inherently inefficient process.
In addition, the related art method of aging packets is susceptible to a phenomenon known as “wrap-around”. This phenomenon is explained below with reference to FIG. 2. At the top of FIG. 2, packet 100 is illustrated at a time t=0 when it has just entered a networked device and when the AGING COUNT value of packet 100 equals “0”. Progressing downward in FIG. 2, packet 100 is illustrated at two later times t1, t2, at which the AGING COUNT value has become progressively higher. Then, at an even later time t3, the AGING COUNT value of packet 100 has reached its maximum allowable value. Finally, at time t4 at the bottom of FIG. 2, packet 100 is again illustrated as having an AGING COUNT value of “0”.
In FIG. 2, if the determination of whether to send the packet 100 from the device is made at time t3, a proper decision will be made to not send out expired packet 100. However, if a determination is not made until time t4, an aging pulse that affected packet 100 after time t3 will have caused the AGING COUNT value at time t3 to have “wrapped around” back to “0”. Hence, packet 100 will be sent out, even though it should have been recognized as having expired.
At least in view of the above, what is needed are devices and methods that reduce the amounts of memory that is dealt with when implementing a datagram aging process. Also, what is needed are methods and systems that prevent the above-discussed wrap-around disadvantage of the related art methods and systems.